import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Arrays;
import java.util.Collections;
import java.util.Enumeration;
import java.io.IOException;
import java.util.Scanner;
import java.util.regex.Pattern;

public class MacAddress {
	int n = 0;

	public void Network() throws SocketException {

		Enumeration<NetworkInterface> netInter = NetworkInterface
				.getNetworkInterfaces();
		
		NetworkInterface ni = netInter.nextElement();
		System.out.println("Test" + ni.getDisplayName());
		System.out.println("Test" + ni.getInetAddresses());
		//System.out.println("Test" + ni.getIndex());
	
		System.out.println("Test" + ni.getSubInterfaces());
		
		while (netInter.hasMoreElements()) {
			NetworkInterface ni2 = netInter.nextElement();

			System.out.println("NetworkInterface " + n++ + ": "
					+ ni2.getDisplayName());
			
			
			
//
//			for (InetAddress iaddress : Collections.list(ni.getInetAddresses())) {
//				System.out.println("CanonicalHostName: "
//						+ iaddress.getCanonicalHostName());
//
//				System.out.println("IP: " + iaddress.getHostAddress());
//
//				
//				
//
//				System.out.println("Loopback? " + iaddress.isLoopbackAddress());
//				System.out.println("SiteLocal? "
//						+ iaddress.isSiteLocalAddress());
//				System.out.println();
			}
		}
//	}
	
	public static void main(String[] args) throws SocketException{
		
		MacAddress m = new MacAddress();
		m.Network();
		m.test();
		
	}
	
    /*
    Java String split example.
    This Java String split example describes how Java String is split into multiple
    Java String objects.
    */
     
    
     public void test(){
    
//      Java String class defines following methods to split Java String object.
//      String[] split( String regularExpression )
//      Splits the string according to given regular expression.
//      String[] split( String reularExpression, int limit )
//      Splits the string according to given regular expression. The number of resultant
//      substrings by splitting the string is controlled by limit argument.
//      */
//     
      /* String to split. */
      String str = "one-two-three";
      String[] temp;
     
      /* delimiter */
      String delimiter = "-";
      /* given string will be split by the argument delimiter provided. */
      temp = str.split(delimiter);
      /* print substrings */
      for(int i =0; i < temp.length ; i++)
        System.out.println(temp[i]);
     
      /*
      IMPORTANT : Some special characters need to be escaped while providing them as
      delimiters like "." and "|".
      */
     
      System.out.println("");
      str = "one.two.three.four";
      delimiter = "\\.";
      temp = str.split(delimiter);
      for(int i =0; i < temp.length ; i++)
        System.out.println(temp[i]);
     
      /*
      Using second argument in the String.split() method, we can control the maximum
      number of substrings generated by splitting a string.
      */
     
      System.out.println("");
      temp = str.split(delimiter,3);
      for(int i =0; i < temp.length ; i++)
        System.out.println(temp[i]);
     
      }
     
    
     
    /*
    OUTPUT of the above given Java String split Example would be :
    one
    two
    three
    one
    two
    three
    one
    two.three
    */
}

	


